package com.ccrfid.rmc6.service.sys;

import com.ccrfid.rmc6.appconfig.exception.pojo.AppException;
import com.ccrfid.rmc6.entity.sys.RoomManagerEntity;
import com.ccrfid.rmc6.pojo.dto.MoveInLocationDto;
import com.ccrfid.rmc6.pojo.dto.room.PersonnelInOutRecord;
import com.ccrfid.rmc6.pojo.dto.room.RoomManagerDto;
import com.ccrfid.rmc6.pojo.dto.room.RoomPrisonerDto;
import com.ccrfid.rmc6.pojo.dto.room.RoomSummaryDto;

import java.util.List;
import java.util.Set;

public interface RoomService {

    List<RoomManagerDto> getRoomManagers(Long roomId);

    RoomManagerDto getRoomManager(Long roomManagerId) throws AppException;

    RoomManagerDto createRoomManager(RoomManagerEntity entity) throws AppException;

    RoomManagerDto updateRoomManager(Long roomManagerId, RoomManagerEntity entity) throws AppException;

    Boolean deleteRoomManager(Long roomManagerId);

    RoomSummaryDto getRoomSummary(Long roomId);

    List<RoomPrisonerDto> getImportantPrisoners(Long roomId);

    List<RoomPrisonerDto> getPrisoners(Long roomId);

    List<RoomPrisonerDto> getLeavedPrisoners(Long roomId);

    RoomPrisonerDto getPrisonerDetail(Long personnelId);

    List<MoveInLocationDto> getPersonnelActivityHistory(Long personnelId, String dateStr);

    List<MoveInLocationDto> getPersonnelMoveLocationList(Long personnelId, String startTime, String endTime);

    List<PersonnelInOutRecord> getRoomLeaveRecords(Long roomId, String dateStr);
    List<PersonnelInOutRecord> getRoomLeaveRecords2(Long roomId, String dateStr);

    List<PersonnelInOutRecord> getRoomEnterRecords(Long roomId, String dateStr);
    List<PersonnelInOutRecord> getRoomEnterRecords2(Long roomId, String dateStr);

    Set<Integer> getLocatorInRoom(Long roomId);
}
